<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>
    function func1() {
        this.value = "111";
        return "1";
    }

    var var1 = new func1();
    alert(var1);//object
    alert(var1.value);//111

    function func2() {
        this.value = "111";
        return {
            name: "lhr"
        };
    }

    var var2 = new func2();
    alert(var2);//object，其实是对象{name:"lhr"}
    alert(var2.value);//undefined
    /*
    通过上面func1跟func2的例子可以发现func1返回的是一个字符串，所以var1最后指向的其实是是func1的prototype的一个实例，
    所以其实是一个对象，我们将能通过var1.value的方式访问func1的变量value
    而func2返回的是一个对象，但是其再不是如func1那样返回函数对象原型的一个实例，而就是声明返回的那个对象，所以var2并无value属性
     */
</script>
</body>
</html>